package com.nenude.corejava.ch6;

//外部类
/**
 * 类的常见结构
 * @author admin
 *
 */

//在一个java文件中，只能有一个类是public 类型的，且类的名称必须与文件名相同（大小写铭感：大小写要相同）
//在java类中，如果编写了静态代码块，代码块 和构造器：在实例化对象时执行先后顺序：静态代码块-->代码块-->构造方法


public class Outter {

	//实例变量 -- 实例属性  --实例属性只跟对象相关
	private int id;
	private String name;
	
	//静态类变量 --类属性  --类属性是全局属性，与类相关
	static String man="男";  
	static String woman="女";
	
	public Outter(){	
		System.out.println("outer 构造方法");
	}
	
	{
		//在一个java类中，可以编写代码块（实例代码块）
		//代码块是跟实例相关的；在执行构造方法前执行
		System.out.println("java代码块");
	}
	
	
	static{
		//在一个java类中，可以编写静态代码块（类代码块）
		//静态代码块是跟类相关的
		System.out.println("静态代码块");
		
	}

    public 	class Inner{
		//实例变量--属性
    	//类变量
    	//常量
    	//方法
    	//内部类不能编写静态代码块
    	{
    		//代码块
    	}
    	
    	public class inner2{
    		//内部类可以支持多级嵌套
    	}
    	
    	//特殊的：内部类有一个情况叫匿名内部类
    	//在使用 new 关键词实例化接口或抽象类时，可以编写成匿名内部类
    	Runnable runnable=new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub			
			}
		};
    	
    	
    	
    	
	}
	
    public class inner3{
    	//在一个类中可以嵌套多个内部类
    }
	
}

//在一个java文件中可以编写多个java类（都是外部类）
class Outter2{
	
}

